<h1>模板函数</h1>

<p>beego 支持用户定义模板函数，但是必须在 <code>beego.Run()</code> 调用之前，设置如下：</p>

<pre><code>func hello(in string)(out string){
	out = in + &quot;world&quot;
	return
	}

	beego.AddFuncMap(&quot;hi&quot;,hello)
	</code></pre>

<p>定义之后你就可以在模板中这样使用了：</p>

<pre><code>{ {.Content | hi} }
	</code></pre>

<p>目前 beego 内置的模板函数如下所示：</p>

<ul>
    <li><p>dateformat</p>

        <p>实现了时间的格式化，返回字符串，使用方法 { {dateformat .Time &ldquo;2006-01-02T15:04:05Z07:00&rdquo;} }。</p></li>

    <li><p>date</p>

        <p>实现了类似 PHP 的 date 函数，可以很方便的根据字符串返回时间，使用方法 { {date .T &ldquo;Y-m-d H:i:s&rdquo;} }。</p></li>

    <li><p>compare</p>

        <p>实现了比较两个对象的比较，如果相同返回 true，否者 false，使用方法 { {compare .A .B} }。</p></li>

    <li><p>substr</p>

        <p>实现了字符串的截取，支持中文截取的完美截取，使用方法 { {substr .Str 0 30} }。</p></li>

    <li><p>html2str</p>

        <p>实现了把 html 转化为字符串，剔除一些 script、css 之类的元素，返回纯文本信息，使用方法 { {html2str .Htmlinfo} }。</p></li>

    <li><p>str2html</p>

        <p>实现了把相应的字符串当作 HTML 来输出，不转义，使用方法 { {str2html .Strhtml} }。</p></li>

    <li><p>htmlquote</p>

        <p>实现了基本的 html 字符转义，使用方法 { {htmlquote .quote} }。</p></li>

    <li><p>htmlunquote</p>

        <p>实现了基本的反转移字符，使用方法 { {htmlunquote .unquote} }。</p></li>

    <li><p>renderform</p>

        <p>根据 StructTag 直接生成对应的表单，使用方法 { {&amp;struct | renderform} }。</p></li>

    <li><p>assets_js</p>

        <p>为 js 文件生成一个 <code>&lt;script&gt;</code> 标签. 使用方法 { {assets_js src} }</p></li>

    <li><p>assets_css</p>

        <p>为 css 文件生成一个 <code>&lt;link&gt;</code> 标签. 使用方法 { {assets_css src} }</p></li>

    <li><p>config</p>

        <p>获取 AppConfig 的值. 使用方法 { {config configType configKey defaultValue} }. 可选的 configType 有 String, Bool, Int,
            Int64, Float, DIY</p></li>

    <li><p>map_get</p>

        <p>获取 <code>map</code> 的值</p>

        <p>用法:</p>

        <pre><code>// In controller
	Data[&quot;m&quot;] = map[string]interface{} {
	&quot;a&quot;: 1,
	&quot;1&quot;: map[string]float64{
	&quot;c&quot;: 4,
	},
	}


	// In view
	{ { map_get .m &quot;a&quot; } } // return 1
	{ { map_get .m 1 &quot;c&quot; } } // return 4
	</code></pre>
    </li>

    <li><p>urlfor</p>

        <p>获取控制器方法的 URL</p>

        <pre><code>{ {urlfor &quot;TestController.List&quot;} }
	</code></pre>

        <p><a href="zh-CN/mvc/controller/urlbuilding.md#模板中如何使用">详见</a></p></li>
</ul>